package com.douyin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.douyin.dto.Result;
import com.douyin.entity.Videos;
import com.baomidou.mybatisplus.extension.service.IService;
import com.douyin.vo.VideoVO;

import java.util.Collection;
import java.util.Map;

public interface VideosService extends IService<Videos> {
    IPage<VideoVO> queryRecommendVideos(Page<Videos> page);
    VideoVO getVideoDetail(Long id);
    IPage<VideoVO> queryUserVideos(Page<Videos> page, Long userId);
    void incrementPlayCount(Long videoId);

    VideoVO convertToVO(Videos videos);
    Map<Long, VideoVO> queryVideoMapByIds(Collection<Long> videoIds);

    Result shareVideos(Long videoId);
    /**
     * 搜索视频（支持标题、描述、标签匹配）
     * @param keyword 搜索关键词
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param sortBy 排序字段（createTime/playCount/likeCount）
     * @return 分页的视频VO列表
     */
    IPage<VideoVO> searchVideos(String keyword, Integer pageNum, Integer pageSize, String sortBy);
}